// 版权归 Epic Games, Inc. 所有。保留所有权利。

#pragma once

#include "Engine/RuntimeOptionsBase.h"

#include "LyraRuntimeOptions.generated.h"

#define UE_API LYRAGAME_API

class UObject;
struct FFrame;

/**
 * ULyraRuntimeOptions: 支持在运行时检查功能是否启用/禁用，更改配置参数，控制台作弊，启动命令。
 *
 * 添加一个新属性，默认（自然或在构造函数中）设置为所需正常状态。（例如 bDisableSomething）。
 * 如果您需要在实时游戏中突然禁用该功能，您将能够做到。
 *
 * 为了测试，您可以使用 -ro.bDisableSomething=true 运行以覆盖默认值。这仅在非发布版本中可用。
 *
 * 变量在控制台的 'ro' 命名空间下注册。例如 ro.bDisableSomething
 */
UCLASS(MinimalAPI, config = RuntimeOptions, BlueprintType)
class ULyraRuntimeOptions : public URuntimeOptionsBase
{
	GENERATED_BODY()

public:
	/** 获取运行时选项实例 */
	static UE_API const ULyraRuntimeOptions& Get();

	/** 构造函数 */
	UE_API ULyraRuntimeOptions();

	/** 获取运行时选项对象（蓝图可用） */
	UFUNCTION(BlueprintPure, Category = Options)
	static UE_API ULyraRuntimeOptions* GetRuntimeOptions();
};

#undef UE_API